package com.university.evaluation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.university.evaluation.common.ResponseResult;
import com.university.evaluation.domain.dto.StudentInfoDTO;
import com.university.evaluation.entity.StudentInfo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
 学生信息服务接口
 所有方法都返回 ResponseResult，以实现统一的响应处理和错误管理
 */
public interface StudentInfoService extends IService<StudentInfo> {
    // --- 当前登录学生的操作 ---
    ResponseResult<StudentInfo> findByStudentId(String studentId);
    ResponseResult<StudentInfo> updateStudentInfo(String studentId, StudentInfoDTO studentInfoDTO);
    ResponseResult<StudentInfo> bindStudentInfo(String studentId, StudentInfoDTO studentInfoDTO);
    // --- 当前登录学生的聚合信息查询 ---
    ResponseResult<?> getScoreOverview(String studentId);
    ResponseResult<?> getEvaluationStats(String studentId);
    ResponseResult<?> getStudentWarnings(String studentId);
    // --- 管理员操作 ---
    ResponseResult<StudentInfo> getStudentInfoById(String studentId);
    ResponseResult<Map<String, Object>> getStudentList(Map<String, Object> params);
    // --- [补全] Controller 中调用但接口中缺失的方法 ---
    ResponseResult<StudentInfo> findByUserId(Long userId);
    ResponseResult<?> batchImport(MultipartFile file);
    ResponseResult<List<StudentInfo>> findByClassId(Long classId);
    ResponseResult<List<StudentInfo>> findByMajorId(Long majorId);
    ResponseResult<List<StudentInfo>> findByDepartmentId(Long departmentId);
    ResponseResult<List<StudentInfo>> findByGrade(String grade);
}